package com.ysw.springbootproject.service;

import com.ysw.springbootproject.entity.AdminUser;
import com.ysw.springbootproject.utils.PageResult;
import com.ysw.springbootproject.utils.PageUtil;

/**
 * @author 月上微
 * @date 2025/1/5
 * @since 11:38
 */
public interface AdminUserService {

    /**
     * 分页功能
     *
     * @param pageUtil PageUtil
     * @return PageResult
     */
    PageResult getAdminUserPage(PageUtil pageUtil);

    /**
     * 登录功能
     *
     * @param userName 用户名
     * @param password 密码
     * @return AdminUser
     */
    AdminUser updateTokenAndLogin(String userName, String password);

    /**
     * 根据 id 获取用户记录
     *
     * @param id id
     * @return AdminUser
     */
    AdminUser selectById(Long id);

    /**
     * 根据 userName 获取用户记录
     *
     * @param userName userName
     * @return AdminUser
     */
    AdminUser selectByUserName(String userName);

    /**
     * 保存用户记录
     *
     * @param user AdminUser
     * @return int
     */
    int save(AdminUser user);

    /**
     * 修改密码
     *
     * @param user AdminUser
     * @return int
     */
    int updatePassword(AdminUser user);

    /**
     * 批量删除
     *
     * @param ids ids
     * @return int
     */
    int deleteBatch(Integer[] ids);

    /**
     * 根据 userToken 获取用户记录
     *
     * @param token token
     * @return AdminUser
     */
    AdminUser getAdminUserByToken(String token);
}
